using System.ComponentModel;

namespace Matrix.Notification.Domain.Shared.Notifications
{
    /// <summary>
    /// 通知状态枚举
    /// </summary>
    public enum NotificationStatus
    {
        /// <summary>
        /// 未指定
        /// </summary>
        [Description("未指定")]
        None = 0,

        /// <summary>
        /// 草稿状态
        /// </summary>
        [Description("草稿")]
        Draft = 1,

        /// <summary>
        /// 待发送状态
        /// </summary>
        [Description("待发送")]
        Pending = 2,

        /// <summary>
        /// 发送中状态
        /// </summary>
        [Description("发送中")]
        Sending = 3,

        /// <summary>
        /// 已发送状态
        /// </summary>
        [Description("已发送")]
        Sent = 4,

        /// <summary>
        /// 发送成功状态
        /// </summary>
        [Description("发送成功")]
        Delivered = 5,

        /// <summary>
        /// 发送失败状态
        /// </summary>
        [Description("发送失败")]
        Failed = 6,

        /// <summary>
        /// 已读状态
        /// </summary>
        [Description("已读")]
        Read = 7,

        /// <summary>
        /// 已取消状态
        /// </summary>
        [Description("已取消")]
        Cancelled = 8,

        /// <summary>
        /// 已退订状态
        /// </summary>
        [Description("已退订")]
        Unsubscribed = 9,

        /// <summary>
        /// 已过期状态
        /// </summary>
        [Description("已过期")]
        Expired = 10,

        /// <summary>
        /// 已暂停状态
        /// </summary>
        [Description("已暂停")]
        Paused = 11,

        /// <summary>
        /// 已调度状态
        /// </summary>
        [Description("已调度")]
        Scheduled = 12,

        /// <summary>
        /// 重试中状态
        /// </summary>
        [Description("重试中")]
        Retrying = 13,

        /// <summary>
        /// 部分成功状态（群发场景）
        /// </summary>
        [Description("部分成功")]
        PartiallyDelivered = 14,

        /// <summary>
        /// 等待确认状态
        /// </summary>
        [Description("等待确认")]
        AwaitingConfirmation = 15,

        /// <summary>
        /// 被用户忽略状态
        /// </summary>
        [Description("已忽略")]
        Ignored = 16,

        /// <summary>
        /// 已删除状态
        /// </summary>
        [Description("已删除")]
        Deleted = 17
    }
}